package com.tan.user.service;

import com.tan.common.domain.user.SysUserRole;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 用户和角色关联表 服务类
 * </p>
 *
 * @author Tan
 * @since 2025-01-27
 */
public interface ISysUserRoleService extends IService<SysUserRole> {

    /**
     * @param [userId]
     * @author Tan-Bowen
     * @description 根据用户查询
     * @date 2025/2/17 15:44
     */
    List<SysUserRole> byUser(Long userId);

    /**
     * @param [roleId]
     * @author Tan-Bowen
     * @description 根据角色查询
     * @date 2025/2/17 15:44
     */
    List<SysUserRole> byRole(Long roleId);

    /**
     * @param [ids]
     * @author Tan-Bowen
     * @description 根据角色查询
     * @date 2025/2/20 15:27
     */
    List<SysUserRole> byRole(List<Long> ids);

    /**
     * @param [userId]
     * @author Tan-Bowen
     * @description 当前用户绑定的角色
     * @date 2025/2/17 15:43
     */
    List<Long> rolesByUser(Long userId);

    /**
     * @param [roleId]
     * @author Tan-Bowen
     * @description 绑定当前角色的用户
     * @date 2025/2/17 15:43
     */
    List<Long> usersByRole(Long roleId);

    /**
     * @param [roleIds]
     * @author Tan-Bowen
     * @description 绑定这些角色的用户id
     * @date 2025/2/20 15:28
     */
    Set<Long> usersByRole(List<Long> roleIds);
}
